﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ETRoboCon.SwitchBoxProtocol
{
    /// <summary>
    /// Switch Boxのサーバー側が実装するインターフェイス
    /// </summary>
    interface ISwitchBoxDevice
    {
        /// <summary>
        /// 本メソッドのCallをもって、Switch Boxの使用が開始されたこととする
        /// </summary>
        /// <param name="client">スイッチの押下状態を通知するためのCall Backハンドら</param>
        /// <returns></returns>
        bool Start(ISwitchBoxClient client);
        /// <summary>
        /// 指定されたスイッチのLEDの点灯を指示する
        /// </summary>
        /// <param name="swType">LEDの状態を変えるスイッチ</param>
        /// <param name="onOff">truの場合点灯、falseの場合消灯</param>
        /// <returns></returns>
        bool ChangeSwitchLEDStatus(CourseSide cs, SwitchType swType, bool onOff);
        
    }

    public enum CourseSide
    {
        IN,
        OUT
    }

    public enum SwitchType
    {
        START,
        RESET,
        GOAL_IN,
        GOAL_OUT,
        RETIRE_IN,
        RETIRE_OUT,
    };

}
